﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ProcessRoll.Utilities;

namespace ProcessRoll.Models
{
    public class Activity:EntityBase
    {
        public virtual Container Container { get; set; }
        public int? ContainerID { get; set; }
        public string ActivityName { get; set; }
        public string ActivityType { get; set; }
        public int ActivityDuration { get; set; }
        public int? ProcessID { get; set; }
        public virtual Process Process { get; set; }
        public int Level { get; set; }
        public string ActivityRole { get; set; } 
    }

    public class Queue : EntityBase
    {
        public int? ProcessID { get; set; }
        public virtual Process Process { get; set; }
        public List<Container> Containers { get; set; }
    }

    public class Container : EntityBase
    {
        public int? QueueID { get; set; }
        public virtual Queue Queue { get; set; }

        public List<NodeData> NodeDatas { get; set; }
        public List<Activity> Activities { get; set; }

        public int? ProcessID { get; set; }
        public virtual Process Process { get; set; }
    }

    public class NodeData : EntityBase
    {
        public int? ConditionID { get; set; }
        public virtual Condition Condition { get; set; }

        public int? ParentNodeDataID { get; set; }
        public virtual NodeData ParentNodeData { get; set; }
        public string Operator { get; set;}
        public List<NodeData> ChildrenData { get; set; }

        public int? ProcessID { get; set; }
        public virtual Process Process { get; set; }

        public int? ContainerID { get; set; }
        public virtual Container Container { get; set; }
    }


}